package com.rest.service.impl;

import com.rest.mapper.DataMDao;
import com.rest.model.DataM;
import com.rest.service.DataMService;
import com.rest.util.LRUUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 王战伟
 * @email mrwangzhanwei@163.com
 * @date 2021/3/16  17:26
 * ///////////////////////////////////////////////////////////////////
 * //                          _ooOoo_                               //
 * //                         o8888888o                              //
 * //                         88" . "88                              //
 * //                         (| ^_^ |)                              //
 * //                         O\  =  /O                              //
 * //                      ____/`---'\____                           //
 * //                    .'  \\|     |//  `.                         //
 * //                   /  \\|||  :  |||//  \                        //
 * //                  /  _||||| -:- |||||-  \                       //
 * //                  |   | \\\  -  /// |   |                       //
 * //                  | \_|  ''\---/''  |   |                       //
 * //                  \  .-\__  `-`  ___/-. /                       //
 * //                ___`. .'  /--.--\  `. . ___                     //
 * //              ."" '<  `.___\_<|>_/___.'  >'"".                  //
 * //            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
 * //            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
 * //      ========`-.____`-.___\_____/___.-`____.-'========         //
 * //                           `=---='                              //
 * //      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
 * //            佛祖保佑       永不宕机     永无BUG                   //
 * ////////////////////////////////////////////////////////////////////
 */
@Service
public class DataMServiceImpl implements DataMService {

    @Autowired
    private DataMDao dataMDao;


    @Override
    public int insert(DataM dataM) {
        return dataMDao.insert(dataM);
    }

    @Override
    public DataM select(Integer id) {
        return dataMDao.selectById(id);
    }

    @Override
    public List<DataM> selectAll(Integer num,Integer size) {
        return dataMDao.selectAll(num,size);
    }

    @Override
    public int delete(Integer id) {
        return dataMDao.deleteById(id);
    }

    @Override
    public int update(DataM dataM) {
        int update = dataMDao.update(dataM);
        // 更新缓存
        if (update > 0){
            LRUUtil.put(dataM.getUrl(),dataM);
        }
        return update;
    }

    @Override
    public Integer count() {
        return dataMDao.selectCount(null);
    }

    @Override
    public DataM getDataByUrl(String url) {
        return dataMDao.getDataByUrl(url);
    }

    @Override
    public DataM getDataByIdAndUrl(Integer id, String url) {
        return dataMDao.getDataByIdAndUrl(id,url);
    }
}
